package com.chenjian.designpattern.strategy;

/**
 * 策略模式
 * <p>
 * 策略角色抽象接口
 *
 * @author TC2952
 */
public abstract class AbstractStrategy {

    /**
     * 最终结果
     */
    protected double finalRes;

    /**
     * 描述信息
     */
    private String desc;

    /**
     * 半参构造
     *
     * @param desc
     */
    public AbstractStrategy(String desc) {
        this.desc = desc;
    }

    public double getFinalRes() {
        return finalRes;
    }

    public void setFinalRes(double finalRes) {
        this.finalRes = finalRes;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    /**
     * 抽象方法，具体策略执行逻辑
     *
     * @param num
     * @return
     */
    public abstract double doRes(double num);
}
